<?php

include 'com/aristo/ingenieros/util/constAccount.php';

include 'com/aristo/ingenieros/presenter/AccountPresenter.php';
include 'com/aristo/ingenieros/presenter/PersonPresenter.php';
include 'com/aristo/ingenieros/presenter/ConceptPresenter.php';
include 'com/aristo/ingenieros/presenter/NotePresenter.php';

include 'com/aristo/ingenieros/presenter/ReceiptPresenter.php';
include 'com/aristo/ingenieros/presenter/OrderPresenter.php';
include 'com/aristo/ingenieros/presenter/DocumentPresenter.php';
include 'com/aristo/ingenieros/presenter/VoucherPresenter.php';

include 'com/aristo/ingenieros/view/AristoJSON.php';
include 'com/aristo/ingenieros/view/NumberEntityView.php';

include 'com/aristo/ingenieros/util/Imprimir.php';

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

use com\aristo\ingenieros\util\Connection;
use com\aristo\ingenieros\view\Response;
use com\aristo\ingenieros\util\constAccount;
use com\aristo\ingenieros\presenter\AccountPresenter;
use com\aristo\ingenieros\presenter\PersonPresenter;
use com\aristo\ingenieros\presenter\ConceptPresenter;
use com\aristo\ingenieros\presenter\NotePresenter;
use com\aristo\ingenieros\presenter\ReceiptPresenter;
use com\aristo\ingenieros\presenter\OrderPresenter;
use com\aristo\ingenieros\presenter\DocumentPresenter;
use com\aristo\ingenieros\presenter\VoucherPresenter;
use com\aristo\ingenieros\view\AristoJSON;
use com\aristo\ingenieros\util\Imprimir;

/**
 * Description of Accounting
 *
 * @author ARISTO INGENIEROS
 */
if (isset($_REQUEST['node'])) {
    $node = $_REQUEST['node'];
    $response = new Response();
    switch ($node) {
        /* ################################################################## */
        case constAccount::$_GET_CUENTAS:
            $conexion = Connection::getConnection();
            $tipo = $_REQUEST['tipo'];
            $termino = $_REQUEST['term'];
            $seccion = $_REQUEST['seccion'];
            $autocomplete = (isset($_REQUEST['auto'])) ? $_REQUEST['auto'] : "";

            $response = AccountPresenter::getCuentas($termino, $tipo, $seccion, $conexion);
            //echo var_dump($response);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                //echo var_dump($response->getType());
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            if ($autocomplete === "") {
                echo $respuesta->toJSON();
            } else {
                echo json_encode($respuesta->getData());
            }
            break;
        /* ################################################################## */
        case constAccount::$_GET_CUENTA:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];
            $tipo = $_REQUEST['tipo'];

            $response = AccountPresenter::getCuenta($id, $tipo, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_PUT_CUENTA:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];
            $codigo = $_REQUEST['codigo'];
            $descripcion = $_REQUEST['descripcion'];

            $response = AccountPresenter::updateCuenta($id, $codigo, $descripcion, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_POST_CUENTA:
            $conexion = Connection::getConnection();
            $seccion = $_REQUEST['seccion'];
            $codigo = $_REQUEST['codigo'];
            $descripcion = $_REQUEST['descripcion'];
            $tipo = $_REQUEST['tipo'];
            $idpadre = $_REQUEST['idpadre'];

            $response = AccountPresenter::addCuenta($seccion, $codigo, $descripcion, $tipo, $idpadre, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos agregados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_DELETE_CUENTA:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];

            $response = AccountPresenter::deleteCuenta($id, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_GET_PERSONALES:
            $conexion = Connection::getConnection();
            $termino = $_REQUEST['term'];
            $autocomplete = (isset($_REQUEST['auto'])) ? $_REQUEST['auto'] : "";

            $response = PersonPresenter::getPersonales($termino, $conexion);
            //echo var_dump($response);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                //echo var_dump($response->getType());
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            if ($autocomplete === "") {
                echo $respuesta->toJSON();
            } else {
                echo json_encode($respuesta->getData());
            }
            break;
        /* ################################################################## */
        case constAccount::$_GET_PERSONAL:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];

            $response = PersonPresenter::getPersonal($id, $conexion);
            //echo var_dump($response);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                //echo var_dump($response->getType());
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_PUT_PERSONAL:
            $conexion = Connection::getConnection();

            $id = $_REQUEST['id'];
            $tipotrabajador = $_REQUEST['tipotrabajador'];
            $dni = $_REQUEST['dni'];
            $nombres = fullUpper($_REQUEST['nombres']);
            $apellidop = fullUpper($_REQUEST['apellidop']);
            $apellidom = fullUpper($_REQUEST['apellidom']);
            $sexo = $_REQUEST['sexo'];
            $direccion = $_REQUEST['direccion'];
            $ruc = $_REQUEST['ruc'];
            $razonsocial = $_REQUEST['razonsocial'];
            $domiciliofiscal = $_REQUEST['domiciliofiscal'];
            $correo = $_REQUEST['correo'];

            $response = PersonPresenter::updatePersonal($id, $tipotrabajador, $dni, $nombres, $apellidop, $apellidom, $sexo, $direccion, $ruc, $razonsocial, $domiciliofiscal, $correo, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_POST_PERSONAL:
            $conexion = Connection::getConnection();
            $tipotrabajador = $_REQUEST['tipo'];
            $dni = $_REQUEST['dni'];
            $nombres = fullUpper($_REQUEST['nombres']);
            $apellidop = fullUpper($_REQUEST['apellidop']);
            $apellidom = fullUpper($_REQUEST['apellidom']);
            $sexo = $_REQUEST['sexo'];
            $direccion = $_REQUEST['direccion'];
            $ruc = $_REQUEST['ruc'];
            $razonsocial = $_REQUEST['razon'];
            $domiciliofiscal = $_REQUEST['domiciliof'];
            $correo = $_REQUEST['correo'];

            $response = PersonPresenter::addPersonal($tipotrabajador, $dni, $nombres, $apellidop, $apellidom, $sexo, $direccion, $ruc, $razonsocial, $domiciliofiscal, $correo, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos agregados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_DELETE_PERSONAL:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];
            $tipotrabajador = $_REQUEST['tipo'];

            $response = PersonPresenter::deletePersonal($id, $tipotrabajador, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_GET_CONCEPTOS:
            $conexion = Connection::getConnection();
            $termino = $_REQUEST['term'];
            $autocomplete = (isset($_REQUEST['auto'])) ? $_REQUEST['auto'] : "";
            $tipo = (isset($_REQUEST['tipo'])) ? $_REQUEST['tipo'] : "";

            $response = ConceptPresenter::getConceptos($termino, $tipo, $conexion);
            //echo var_dump($response);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                //echo var_dump($response->getType());
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            if ($autocomplete === "") {
                echo $respuesta->toJSON();
            } else {
                echo json_encode($respuesta->getData());
            }
            break;
        /* ################################################################## */
        case constAccount::$_GET_CONCEPTO:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];

            $response = ConceptPresenter::getConcepto($id, $conexion);
            //echo var_dump($response);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                //echo var_dump($response->getType());
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_PUT_CONCEPTO:
            $conexion = Connection::getConnection();

            $id = $_REQUEST['id'];
            $concepto = $_REQUEST['concepto'];
            $monto = $_REQUEST['monto'];
            $tipo = $_REQUEST['tipo'];
            $presupuestal = $_REQUEST['presupuestal'];
            $contabledb = $_REQUEST['contabledb'];
            $contablehb = $_REQUEST['contablehb'];

            $response = ConceptPresenter::updateConcepto($id, $concepto, $monto, $tipo, $presupuestal, $contabledb, $contablehb, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_POST_CONCEPTO:
            $conexion = Connection::getConnection();
            $concepto = $_REQUEST['concepto'];
            $monto = $_REQUEST['monto'];
            $tipo = $_REQUEST['tipo'];
            $presupuestal = $_REQUEST['presupuestal'];
            $contabledb = $_REQUEST['contabledb'];
            $contablehb = $_REQUEST['contablehb'];

            $response = ConceptPresenter::addConcepto($concepto, $monto, $tipo, $presupuestal, $contabledb, $contablehb, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos agregados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_DELETE_CONCEPTO:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];

            $response = ConceptPresenter::deleteConcepto($id, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_GET_NOTAS:
            $conexion = Connection::getConnection();
            $termino = $_REQUEST['term'];
            $autocomplete = (isset($_REQUEST['auto'])) ? $_REQUEST['auto'] : "";

            $response = NotePresenter::getNotas($termino, $conexion);
            //echo var_dump($response);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                //echo var_dump($response->getType());
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            if ($autocomplete === "") {
                echo $respuesta->toJSON();
            } else {
                echo json_encode($respuesta->getData());
            }
            break;
        /* ################################################################## */
        case constAccount::$_GET_NOTA: break;
        case constAccount::$_PUT_NOTA: break;
        case constAccount::$_POST_NOTA:
            $conexion = Connection::getConnection();
            $tipo = $_REQUEST['tipo'];
            $idcuenta = $_REQUEST['cuenta'];
            $monto = $_REQUEST['monto'];
            $fecha = $_REQUEST['fecha'];

            $response = NotePresenter::addNota($tipo, $idcuenta, $monto, $fecha, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos agregados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_DELETE_NOTA:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];

            $response = NotePresenter::deleteNota($id, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        /* ################################################################## */
        case constAccount::$_GET_MAXNRORECIBO:
            $conexion = Connection::getConnection();

            $response = ReceiptPresenter::getMaxNroRecibo($conexion);

            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_POST_RECIBO:
            $conexion = Connection::getConnection();
            $nrorecibo = $_REQUEST['nrorecibo'];
            $idpersona = $_REQUEST['idpersona'];
            $nrovoucher = $_REQUEST['nrovoucher'];
            $fecha = $_REQUEST['fecha'];
            $detalle = $_REQUEST['detalle'];

            $response = ReceiptPresenter::addRecibo($nrorecibo, $idpersona, $nrovoucher, $fecha, $detalle, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos agregados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_GET_RECIBOS:
            $conexion = Connection::getConnection();
            //$id = $_REQUEST['id'];

            $response = ReceiptPresenter::getRecibos($conexion);

            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_DELETE_DOCUMENTO:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];

            $response = DocumentPresenter::deleteDocumento($id, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos actualizados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_IMPRIMIR_RECIBO:
            $conexion = Connection::getConnection();

            $iddocumento = $_REQUEST['iddocumento'];

            $recibo = ReceiptPresenter::getRecibo($iddocumento, $conexion);
            $detalle = DocumentPresenter::getDetalleDocumento($iddocumento, $conexion);

            Imprimir::imprimirReciboIngreso($recibo->getResult(), $detalle->getResult());
            break;
        /* ################################################################## */
        case constAccount::$_GET_MAXORDEN:
            $conexion = Connection::getConnection();

            $response = OrderPresenter::getMaxNroOrden($conexion);

            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_POST_ORDEN:
            $conexion = Connection::getConnection();
            $nroorden = $_REQUEST['nroorden'];
            $idpersona = $_REQUEST['idpersona'];
            $direccion = $_REQUEST['direccion'];
            $almacen = $_REQUEST['almacen'];
            $referencia = $_REQUEST['referencia'];
            $fecha = $_REQUEST['fecha'];
            $detalle = $_REQUEST['detalle'];

            $response = OrderPresenter::addOrdenCompra($nroorden, $idpersona, $direccion, $almacen, $referencia, $fecha, $detalle, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos agregados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_IMPRIMIR_ORDEN:
            $conexion = Connection::getConnection();

            $iddocumento = $_REQUEST['iddocumento'];

            $orden = OrderPresenter::getOrden($iddocumento, $conexion);
            $detalle = DocumentPresenter::getDetalleDocumento($iddocumento, $conexion);

            Imprimir::imprimirOrdenCompra($orden->getResult(), $detalle->getResult());
            break;
        case constAccount::$_GET_COMPROBANTES_PENDIENTES:
            $conexion = Connection::getConnection();
            //$id = $_REQUEST['id'];

            $response = DocumentPresenter::getComprobantesPendientes($conexion);

            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_GET_MAXCOMPROBANTE:
            $conexion = Connection::getConnection();

            $response = VoucherPresenter::getMaxNroComprobante($conexion);

            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_GET_ORDENCOMPRA:
            $conexion = Connection::getConnection();
            $id = $_REQUEST['id'];

            $response = OrderPresenter::getOrdenid($id, $conexion);
            //echo var_dump($response);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                //echo var_dump($response->getType());
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_POST_COMPROBANTE:
            $conexion = Connection::getConnection();
            $orden = $_REQUEST['orden'];
            $nrocomprobante = $_REQUEST['nrocomprobante'];
            $nrocheque = $_REQUEST['nrocheque'];
            $nrofactura = $_REQUEST['nrofactura'];
            $fecha = $_REQUEST['fecha'];
            $sector = $_REQUEST['sector'];
            $pliego = $_REQUEST['pliego'];
            $programa = $_REQUEST['programa'];
            $subprograma = $_REQUEST['subprograma'];
            $proyecto = $_REQUEST['proyecto'];
            $obra = $_REQUEST['obra'];
            $fuente = $_REQUEST['fuente'];
            $funcional = $_REQUEST['funcional'];

            $response = VoucherPresenter::addComprobante($orden, $nrocomprobante, $nrocheque, $nrofactura, $fecha, $sector, $pliego, $programa, $subprograma, $proyecto, $obra, $fuente, $funcional, $conexion);
            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos agregados');
                $conexion->commit();
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
                $conexion->rollback();
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_IMPRIMIR_COMPROBANTE:
            $conexion = Connection::getConnection();

            $iddocumento = $_REQUEST['id'];

            $orden = OrderPresenter::getOrdenid($iddocumento, $conexion);
            $documento = DocumentPresenter::getDetalleDocumentoId($iddocumento, $conexion);

            Imprimir::imprimirComprobantePago($orden->getResult(), $documento->getResult()->getMonto());
            break;
        case constAccount::$_GET_ORDENES:
            $conexion = Connection::getConnection();

            $response = OrderPresenter::getOrdenesComp($conexion);

            $respuesta = new AristoJSON();
            $respuesta->setEstado('SUCCESS');

            if ($response->getStatus() == Response::$STATUS_OK) {
                $respuesta->setData($response->getResult());
                $respuesta->setDescripcion('Datos cargados');
            } else {
                $respuesta->setEstado('ERROR');
                $respuesta->setDescripcion($response->getResult());
            }
            echo $respuesta->toJSON();
            break;
        case constAccount::$_IMPRIMIR_LIBRODIARIO:
            $conexion = Connection::getConnection();
            $anio = $_REQUEST['anio'];
            $mes = $_REQUEST['mes'];
            $movimientos = DocumentPresenter::getMovimientos($anio, $mes, $conexion);
            Imprimir::imprimirLibroDiario($anio, $mes, $movimientos->getResult());
            break;
        case constAccount::$_IMPRIMIR_LIBROCAJA:
            $conexion = Connection::getConnection();
            $anio = $_REQUEST['anio'];
            $mes = $_REQUEST['mes'];
            $movimientos = DocumentPresenter::getMovimientos($anio, $mes, $conexion);
            Imprimir::imprimirLibroCaja($anio, $mes, $movimientos->getResult());
            break;
        case constAccount::$_IMPRIMIR_LIBROBANCO:
            $conexion = Connection::getConnection();
            $anio = $_REQUEST['anio'];
            $mes = $_REQUEST['mes'];
            $movimientos = DocumentPresenter::getMovimientos($anio, $mes, $conexion);
            Imprimir::imprimirLibroBanco($anio, $mes, $movimientos->getResult());
            break;
        case constAccount::$_IMPRIMIR_LIBROMAYOR:
            $conexion = Connection::getConnection();
            $anio = $_REQUEST['anio'];
            $mes = $_REQUEST['mes'];
            $cuentas = AccountPresenter::getCuentasTipoCUENTAS($conexion);
            $movimientos = DocumentPresenter::getMovimientos($anio, $mes, $conexion);

            $arrayCuentas = array();
            foreach ($cuentas->getResult() as $cuenta) {
                $arrayLista = array();
                foreach ($movimientos->getResult() as $movimiento) {
                    //echo 'ok: '.substr($movimiento["desCuenta"], 0,4)."<br/>";
                    if ($cuenta["codigo"] == substr($movimiento["desCuenta"], 0, 4)) {
                        $arrayLista [] = $movimiento;
                    }
                }
                if (sizeof($arrayLista) > 0) {
                    $cuenta["value"] = $arrayLista;
                    $arrayCuentas [] = $cuenta;
                }
            }
            Imprimir::imprimirLibroMayor($anio, $mes, $arrayCuentas);
            break;
        case constAccount::$_IMPRIMIR_LIBROBALANCEGENERAL:
            $conexion = Connection::getConnection();
            $anio = $_REQUEST['anio'];
            $mes = $_REQUEST['mes'];
            $movimientos = DocumentPresenter::getMovimientos($anio, $mes, $conexion);

            $cuenta1101 = 0;
            $cuenta1201 = 0;
            $cuenta1202 = 0;
            $cuenta1205 = 0;
            $cuenta1301 = 0;
            $cuenta1507 = 0;
            $cuenta2101 = 0;
            $cuenta2103 = 0;
            $cuenta3101 = 0;
            $cuenta3201 = 0;
            $cuenta3401 = 0;
            foreach ($movimientos->getResult() as $movimiento) {
                $varcuenta = substr($movimiento["desCuenta"], 0, 4);
                $varmonto = $movimiento["monto"];
                $mov_esAnulado = $movimiento["esAnulado"];
                if ($mov_esAnulado == "NO") {
                    if ("1101" == $varcuenta) {
                        $cuenta1101 += $varmonto;
                    } else if ("1201" == $varcuenta) {
                        $cuenta1201 += $varmonto;
                    } else if ("1202" == $varcuenta) {
                        $cuenta1202 += $varmonto;
                    } else if ("1205" == $varcuenta) {
                        $cuenta1205 += $varmonto;
                    } else if ("1301" == $varcuenta) {
                        $cuenta1301 += $varmonto;
                    } else if ("1507" == $varcuenta) {
                        $cuenta1507 += $varmonto;
                    } else if ("2101" == $varcuenta) {
                        $cuenta2101 += $varmonto;
                    } else if ("2103" == $varcuenta) {
                        $cuenta2103 += $varmonto;
                    } else if ("3101" == $varcuenta) {
                        $cuenta3101 += $varmonto;
                    } else if ("3201" == $varcuenta) {
                        $cuenta3201 += $varmonto;
                    } else if ("3401" == $varcuenta) {
                        $cuenta3401 += $varmonto;
                    }
                }
            }
            Imprimir::imprimirLibroBalanceGeneral($anio, $mes, $cuenta1101, $cuenta1201, $cuenta1202, $cuenta1205, $cuenta1301, $cuenta1507, $cuenta2101, $cuenta2103, $cuenta3101, $cuenta3201, $cuenta3401);
            break;
        default:
            break;
    }
}